package com.hibase.core.rule.service.ruletableversion;

import com.github.pagehelper.PageInfo;
import com.hibase.core.mybatis.service.BaseService;
import com.hibase.core.rule.entity.ruletable.query.RuleQueryResultVO;
import com.hibase.core.rule.entity.ruletable.query.TableQuerySearchVO;
import com.hibase.core.rule.entity.ruletable.vo.RuleTableFieldSearchVO;
import com.hibase.core.rule.entity.ruletable.vo.RuleTableViewVO;
import com.hibase.core.rule.entity.ruletableversion.RuleTableVersion;
import com.hibase.core.rule.entity.ruletableversion.vo.RuleTableVersionSearchVO;

import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.util.List;

/**
 * <p>
 * 动态规则表 服务类
 * </p>
 *
 * @author zjw
 * @since 2020-10-27
 */
public interface RuleTableVersionService extends BaseService<RuleTableVersion> {

    /**
     * 查询动态规则表列表
     *
     * @param searchVO
     * @return
     */
    PageInfo<RuleTableVersion> selectRuleTableVersionList(RuleTableVersionSearchVO searchVO);

    /**
     * 改变动态规则表记录
     *
     * @param entity
     * @return
     */
    void saveRuleTableVersion(RuleTableVersion entity);

    /**
     * 查询动态规则表详情
     *
     * @param id
     * @return
     */
    RuleTableVersion viewRuleTableVersion(String id);

    /**
     * 删除动态规则表
     *
     * @param ids
     */
    void deleteRuleTableVersion(List<String> ids);

    RuleQueryResultVO selectTableData(TableQuerySearchVO searchVO);

    RuleTableViewVO viewRuleTable(String id);

    PageInfo selectRuleTableFieldList(RuleTableFieldSearchVO searchVO);

    void exportRuleTableVersion(String id, HttpServletResponse response);

    /**
     * 上线
     * @param ids
     */
    void upLine(List<String> ids);

    /**
     * 下线
     * @param ids
     */
    void downLine(List<String> ids);

    void importRuletableVersion(InputStream inputStream, String id);

    void exportRuleTableVersionData(String id, HttpServletResponse response);

    void deleteTableData(String ids);
}
